import 'package:flutter/material.dart';
import 'package:aio/aio.dart';
import 'package:app/generated/app_strings.dart';
import 'package:app/src/manager/audit_manager.dart';
import 'package:app/src/presenter/review_presenter.dart';
import 'package:app/src/ui/app_ui.dart';
import 'package:app/src/ui/route/works/public/items/ui_attachment.dart';
import 'package:app/src/ui/route/works/public/items/ui_base.dart';
import 'package:app/src/ui/route/works/public/items/ui_contractInfo.dart';
import 'package:app/src/ui/route/works/public/items/ui_customersInfo.dart';
import 'package:app/src/ui/route/works/public/items/ui_new_customer.dart';
import 'package:app/src/ui/route/works/public/items/ui_node_list.dart';
import 'package:app/src/ui/route/works/public/items/ui_note.dart';
import 'package:app/src/ui/route/works/public/items/ui_payment.dart';
import 'package:app/src/ui/route/works/public/acom/ui_product.dart';
import 'package:app/src/ui/route/works/public/items/ui_specialclauses.dart';
import 'package:app/src/ui/route/works/public/review_details_ui.dart';
import 'package:app/src/ui/route/works/public/review_submitted.dart';

import '../../../dialog/dailog.dart';
import '../public/acom/ui_workreview_item_info.dart';
import '../public/acom/ui_workreview_scheduling.dart';
import '../public/items/ui_dispatchingaudit.dart';
import '../public/items/ui_workreview.dart';

///加班审核详情
class WorkReviewDetailsRoute extends StatefulWidget {
  WorkReviewDetailsRoute();

  @override
  _State createState() => _State();
}

class _State extends State<WorkReviewDetailsRoute> {
  _Presenter presenter = _Presenter();

  @override
  void initState() {
    super.initState();
    presenter.getContractapplygetinfoWithDelay(context, callback: () {
      UiWorkReviewScheduling.init(
          presenter?.mDatas?.Schedulings); //fixme 加班审核：排班 初始化
    }); //获取审核详情数据
  }

  @override
  Widget build(BuildContext context) {
    return ReviewDetailsUi.build(context, presenter, _body);
  }

  Widget _body(BuildContext context) {
    if (presenter?.mDatas == null) {
      return AppUi.getEmptyView();
    }
    List<Widget> children = [];
    children.add(UiWorkReviewInfo.build(context, presenter?.mDatas?.WorkReview,
        presenter?.mOldDatas?.WorkReview)); //人员信息
    children.add(UiWorkReviewScheduling.build(context)); //fixme 加班审核：排班
    children.add(UiWorkReviewItemInfo.build(
        context, presenter?.mDatas?.getWorkOvertimeApprovals())); //加班审批
    children.add(UiNoteList.build(context, presenter?.mDatas?.NodeList)); //审核日志
    return Column(
      children: [
        Expanded(child: UiBase.listView(context, children)),
        Visibility(
            child: ReviewSubmittedStateful(
              presenter?.mDatas,
              hasBack: false,
              hasEnd: false,
              callbackWithT: (subData) {
                //fixme 提交参数数据
                //print("排班是否选中${UiWorkReviewScheduling.isScheduling}\t${subData.Schedulings}");
                if (UiWorkReviewScheduling.isScheduling) {
                  //排班选中的时候赋值
                  subData.Schedulings = UiWorkReviewScheduling.datas; //加班审核：排班
                }else{
                  subData.Schedulings=null;
                }
                subData.WorkOvertimeApprovals =
                    presenter?.mDatas?.WorkOvertimeApprovals; //加班审核：加班审批
              },
              callbackWithBoolResult: () {
                //fixme 提交数据格式验证
                // if (StringUtils.isEmptyWithNumber(
                //     presenter?.mDatas?.OtherWorkApply?.Amount)) {
                //   AppDialog.showDialogWithInfo(context,
                //       content: AppStrings.of(context)
                //           .ApplicationAmountNotEmpty2); //fixme 申请保底金额不能为空
                //   return false;
                // }
                return true;
              },
            ),
            visible: presenter?.mDatas != null)
      ],
    );
  }
}

class _Presenter extends ReviewPresenter {}
